let arr=[1,2,3];

// forEach 循环体内部不支持break和continue会报错，不能中途跳出循环
// arr.forEach(function(elem,index){

//     console.log(elem,index);
// })

// map 
// let arr1= arr.map(function(elem,index){

// return elem+=1
// })
// console.log(arr);
// console.log(arr1);

// filter过滤
// let arr1=arr.filter(function(value){
//     return value==2
// })
// console.log(arr1,arr);

// some 找到符合条件的就返回true 反之返回false
// let arr1=arr.some(function(value){
//     return value==1
// })
// console.log(arr1,arr);//true (3) [1, 2, 3]

// every 每个元素都符合条件的就返回true 反之返回false
// let arr1=arr.every(function(value){
//     return value==1
// })
// console.log(arr1,arr);//false (3) [1, 2, 3]

// reduce要执行的函数，要执行的函数中也可传入参数，分别为prev：上次调用函数的返回值cur：当前元素index：当前元素索引arr：被遍历的数组

// let sum =arr.reduce(function(prev,cur){
//     return  prev+cur
// })
// console.log(sum);

// let max =arr.reduce(function(prev,cur){
//     return Math.max(prev,cur)
// })
// console.log(max);

// // 数组去重
// let Arr=[1,2,2,3,4,3]
// let sum =Arr.reduce(function(prev,cur){
//     prev.indexOf(cur)==-1 && prev.push(cur)
//     return  prev
// },[])
// console.log(sum);


console.log('------------分界线上边es5下边es6---------------');

// find find方法只会返回符合条件的第一个元素
// let Arr=[1,2,2,3,4,3]
// let res =Arr.find(function(value){
//     return value==3
// })
// console.log(res);

// findIndex findIndex方法只会返回符合条件的第一个元素的索引
// let Arr=[1,2,2,3,4,3]
// let res =Arr.findIndex(function(value){
//     return value==3
// })
// console.log(res);


// for of

// for (let item of arr) {
//     console.log(item);
// }
// 等同于上方
// for (let item of arr.values()) {
//     console.log(item);
// }
// 获取索引
// for (let item of arr.keys()) {
//     console.log(item);
// }
// 既要索引也要元素
// for (let [item,index] of arr.entries()) {
//     console.log(item,index);
// }
